#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
创建数据表脚本
用于创建项目所需的数据表
"""

# 导入系统相关模块
import sys
import os

# 添加项目根目录到Python路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 导入dotenv用于加载环境变量
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

def create_tables():
    """
    创建数据库表
    根据模型定义创建所有数据表
    """
    print("开始创建数据库表...")
    
    try:
        # 导入模型
        from utils.models import Base, engine, User, File, Workflow, Result, Role, Permission, RolePermission, WorkflowTemplate, WorkflowExecution, ResultShare, SystemConfig, OperationLog
        
        # 创建所有表
        Base.metadata.create_all(bind=engine)
        print("数据库表创建成功!")
        
        # 显示创建的表
        from sqlalchemy import inspect
        inspector = inspect(engine)
        tables = inspector.get_table_names()
        print("已创建的表:")
        for table in sorted(tables):
            print(f"  - {table}")
            
    except Exception as e:
        print(f"创建数据库表时出错: {e}")
        import traceback
        traceback.print_exc()

# 程序入口
if __name__ == "__main__":
    create_tables()